/*
2021-7-27
https://www.acwing.com/problem/content/1076/
*/ 
#include<cstring>
#include<iostream>
#include<algorithm>

using namespace std;
const int N=105,M=N*2;
int f[N][N];
int n,m;
int h[N],e[M],ne[M],w[M],idx;

void add(int a,int b,int c)
{
    e[idx]=b,w[idx]=c,ne[idx]=h[a],h[a]=idx++;
}

void dfs(int u,int fa)
{
    for(int i=h[u];~i;i=ne[i])
    {
        if(e[i]==fa) continue;
        dfs(e[i],u);
        for(int j=m;j;j--)
            for(int k=0;k+1<=j;k++)
                f[u][j]=max(f[u][j],f[u][j-k-1]+f[e[i]][k]+w[i]);
    }
}

int main()
{
    cin>>n>>m;
    memset(h,-1,sizeof h);
    
    for(int i=0;i<n-1;i++)
    {
        int a,b,c;
        cin>>a>>b>>c;
        add(a,b,c),add(b,a,c);
    }
    
    dfs(1,-1);
    
    cout<<f[1][m]<<endl;
    
    return 0;
}


